Skip to content

ci: publish package previews of pull requests on TanStack Source - #2128

Merged
AlemTuzlak merged 3 commits into
mainfrom
alem/source-package-previews
Nov 10, 2026
Merged

AlemTuzlak merged 3 commits into
mainfrom
alem/source-package-previews

Conversation

@AlemTuzlak

@AlemTuzlak AlemTuzlak commented Nov 10, 2026 •

Copy link
Copy Markdown
Contributor

The pr workflow on TanStack Source gets a preview job. It builds the packages and runs the new built-in step packagePreview({ npm: ['packages/*'] }). The step uploads one tarball for each package into the repository's assets under package-previews/<pr>/<short sha>/, and the forge keeps one comment with an npm i <url> line for each package. It does the same job as the Preview job of pr.yml with pkg.pr.new.

Testing

  • The preview check of this pull request fails at Set up Node, as expected. A job that is new in a pull request runs with no secrets, variables, permissions or egress until the change is merged, so it cannot reach nodejs.org. The run shows this as a warning.
  • After this merges, the next pull request publishes its previews. The forge deletes them 3 to 4 days after that pull request closes.

Manual test, after the merge:

  1. Open a pull request from a branch of this repository.
  2. Wait for the preview check. The forge writes a comment with the install lines.
  3. Run one npm i <url> line in an empty folder. The package installs.

Risk / rollback

  • Each pull request run builds every package once more, in its own job, next to test.
  • The previews count toward the 10 GiB of assets of the repository.
  • Rollback: revert this pull request. The GitHub Preview job with pkg.pr.new did not change.

@changeset-bot

changeset-bot Bot commented Nov 10, 2026 •

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 7472608

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@coderabbitai

coderabbitai Bot commented Nov 10, 2026 •

Copy link
Copy Markdown
Contributor

Explain Change →

No actionable comments were generated in the recent review.

Walkthrough

The pull request workflow clarifies that the Test check runs on TanStack Source while the Coverage job remains on GitHub. It adds a preview job that builds packages and calls packagePreview for packages/*.

Changes: Pull request workflow

Layer / File(s) Summary
Test job definition
.source/workflows/pr.ts
The comments distinguish the Test check from the Coverage job. The existing test configuration is expressed as a chained job call, with its settings and command unchanged.
Package preview job
.source/workflows/pr.ts
A new job installs dependencies, builds all packages, and calls packagePreview for packages/*. It uses the browser image and egress allowlist, disables Nx Cloud, and grants packages: 'preview' permission.

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Feature

Possibly related PRs

  • TanStack/ai#2075: Adds the TanStack Source PR workflow and its test job, which this change extends with a preview job.
  • TanStack/ai#1980: Updates the GitHub PR Preview job that publishes packages; this change adds a separate Source preview job and leaves the GitHub job unchanged.
Merge Risk: Minimal · up to 74726

Merge Risk: ⚪ Minimal · up to 74726

The change adds package previews; no actionable merge-blocking issue was established.

Pre-merge checks: Passed 5

Check name Status Explanation
Title check Passed The title clearly summarizes the main change: publishing package previews for pull requests through TanStack Source.
Docstring Coverage Passed No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentat…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Description check Passed The description clearly explains the workflow change, testing, risks, and rollback. It does not include the template’s checklist or an explicit release-impact statement, but the description is otherwi…
Full details: Docstring Coverage

Explanation

No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 0 functions across 1 files.

Full details: Description check

Explanation

The description clearly explains the workflow change, testing, risks, and rollback. It does not include the template’s checklist or an explicit release-impact statement, but the description is otherwise complete.

Finishing Touches

Generate docstrings

  • Commit to this branch
  • Create a new PR
Generate unit tests (beta)

  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

Recent review info

Run configuration

  • Source mode: Auto
  • Repository: TanStack/ai
  • Branch: main
  • File: .coderabbit.yaml
  • Commit: cbf6281
  • Layers: Repository YAML
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 462a00e9-5eda-4158-84bf-f6320acfdfe0
Commits

Reviewing files that changed from the base of the PR and between cbf6281 and 4542ad6.

Files selected for processing: 1

  • .source/workflows/pr.ts

Included review availability: This review used your included allowance. Your plan provides up to 8 included reviews per hour; 7 remain after this review.

@nx-cloud

nx-cloud Bot commented Nov 10, 2026 •

Copy link
Copy Markdown

View your CI Pipeline Execution ↗ for commit 7472608

Command Status Duration Result
nx run-many --targets=build --exclude=examples/... ✅ Succeeded 4s View ↗
nx affected --targets=test:sherif,test:knip,tes... ✅ Succeeded 8s View ↗

☁️ Nx Cloud last updated this comment at 2026-11-10 16:23:06 UTC

@pkg-pr-new

pkg-pr-new Bot commented Nov 10, 2026 •

Copy link
Copy Markdown

Open in StackBlitz

@tanstack/ai

npm i https://pkg.pr.new/@tanstack/ai@2128

@tanstack/ai-acp

npm i https://pkg.pr.new/@tanstack/ai-acp@2128

@tanstack/ai-angular

npm i https://pkg.pr.new/@tanstack/ai-angular@2128

@tanstack/ai-anthropic

npm i https://pkg.pr.new/@tanstack/ai-anthropic@2128

@tanstack/ai-bedrock

npm i https://pkg.pr.new/@tanstack/ai-bedrock@2128

@tanstack/ai-byteplus

npm i https://pkg.pr.new/@tanstack/ai-byteplus@2128

@tanstack/ai-claude-code

npm i https://pkg.pr.new/@tanstack/ai-claude-code@2128

@tanstack/ai-client

npm i https://pkg.pr.new/@tanstack/ai-client@2128

@tanstack/ai-cloudflare

npm i https://pkg.pr.new/@tanstack/ai-cloudflare@2128

@tanstack/ai-code-mode

npm i https://pkg.pr.new/@tanstack/ai-code-mode@2128

@tanstack/ai-code-mode-snippets

npm i https://pkg.pr.new/@tanstack/ai-code-mode-snippets@2128

@tanstack/ai-codex

npm i https://pkg.pr.new/@tanstack/ai-codex@2128

@tanstack/ai-cohere

npm i https://pkg.pr.new/@tanstack/ai-cohere@2128

@tanstack/ai-compaction

npm i https://pkg.pr.new/@tanstack/ai-compaction@2128

@tanstack/ai-computer-local

npm i https://pkg.pr.new/@tanstack/ai-computer-local@2128

@tanstack/ai-computer-playwright

npm i https://pkg.pr.new/@tanstack/ai-computer-playwright@2128

@tanstack/ai-computer-sandbox

npm i https://pkg.pr.new/@tanstack/ai-computer-sandbox@2128

@tanstack/ai-computer-use

npm i https://pkg.pr.new/@tanstack/ai-computer-use@2128

@tanstack/ai-devtools-core

npm i https://pkg.pr.new/@tanstack/ai-devtools-core@2128

@tanstack/ai-durable-stream

npm i https://pkg.pr.new/@tanstack/ai-durable-stream@2128

@tanstack/ai-effect

npm i https://pkg.pr.new/@tanstack/ai-effect@2128

@tanstack/ai-elevenlabs

npm i https://pkg.pr.new/@tanstack/ai-elevenlabs@2128

@tanstack/ai-event-client

npm i https://pkg.pr.new/@tanstack/ai-event-client@2128

@tanstack/ai-fal

npm i https://pkg.pr.new/@tanstack/ai-fal@2128

@tanstack/ai-gemini

npm i https://pkg.pr.new/@tanstack/ai-gemini@2128

@tanstack/ai-grok

npm i https://pkg.pr.new/@tanstack/ai-grok@2128

@tanstack/ai-grok-build

npm i https://pkg.pr.new/@tanstack/ai-grok-build@2128

@tanstack/ai-groq

npm i https://pkg.pr.new/@tanstack/ai-groq@2128

@tanstack/ai-harness

npm i https://pkg.pr.new/@tanstack/ai-harness@2128

@tanstack/ai-harness-cli

npm i https://pkg.pr.new/@tanstack/ai-harness-cli@2128

@tanstack/ai-isolate-cloudflare

npm i https://pkg.pr.new/@tanstack/ai-isolate-cloudflare@2128

@tanstack/ai-isolate-daytona

npm i https://pkg.pr.new/@tanstack/ai-isolate-daytona@2128

@tanstack/ai-isolate-e2b

npm i https://pkg.pr.new/@tanstack/ai-isolate-e2b@2128

@tanstack/ai-isolate-node

npm i https://pkg.pr.new/@tanstack/ai-isolate-node@2128

@tanstack/ai-isolate-quickjs

npm i https://pkg.pr.new/@tanstack/ai-isolate-quickjs@2128

@tanstack/ai-isolate-quickjs-bun

npm i https://pkg.pr.new/@tanstack/ai-isolate-quickjs-bun@2128

@tanstack/ai-llmgateway

npm i https://pkg.pr.new/@tanstack/ai-llmgateway@2128

@tanstack/ai-lovable

npm i https://pkg.pr.new/@tanstack/ai-lovable@2128

@tanstack/ai-mcp

npm i https://pkg.pr.new/@tanstack/ai-mcp@2128

@tanstack/ai-memory

npm i https://pkg.pr.new/@tanstack/ai-memory@2128

@tanstack/ai-mistral

npm i https://pkg.pr.new/@tanstack/ai-mistral@2128

@tanstack/ai-neon

npm i https://pkg.pr.new/@tanstack/ai-neon@2128

@tanstack/ai-octane

npm i https://pkg.pr.new/@tanstack/ai-octane@2128

@tanstack/ai-ollama

npm i https://pkg.pr.new/@tanstack/ai-ollama@2128

@tanstack/ai-ollaya

npm i https://pkg.pr.new/@tanstack/ai-ollaya@2128

@tanstack/ai-openai

npm i https://pkg.pr.new/@tanstack/ai-openai@2128

@tanstack/ai-opencode

npm i https://pkg.pr.new/@tanstack/ai-opencode@2128

@tanstack/ai-openrouter

npm i https://pkg.pr.new/@tanstack/ai-openrouter@2128

@tanstack/ai-perplexity

npm i https://pkg.pr.new/@tanstack/ai-perplexity@2128

@tanstack/ai-persistence

npm i https://pkg.pr.new/@tanstack/ai-persistence@2128

@tanstack/ai-preact

npm i https://pkg.pr.new/@tanstack/ai-preact@2128

@tanstack/ai-react

npm i https://pkg.pr.new/@tanstack/ai-react@2128

@tanstack/ai-reactor

npm i https://pkg.pr.new/@tanstack/ai-reactor@2128

@tanstack/ai-remix

npm i https://pkg.pr.new/@tanstack/ai-remix@2128

@tanstack/ai-sandbox

npm i https://pkg.pr.new/@tanstack/ai-sandbox@2128

@tanstack/ai-sandbox-blaxel

npm i https://pkg.pr.new/@tanstack/ai-sandbox-blaxel@2128

@tanstack/ai-sandbox-boxd

npm i https://pkg.pr.new/@tanstack/ai-sandbox-boxd@2128

@tanstack/ai-sandbox-cloudflare

npm i https://pkg.pr.new/@tanstack/ai-sandbox-cloudflare@2128

@tanstack/ai-sandbox-daytona

npm i https://pkg.pr.new/@tanstack/ai-sandbox-daytona@2128

@tanstack/ai-sandbox-docker

npm i https://pkg.pr.new/@tanstack/ai-sandbox-docker@2128

@tanstack/ai-sandbox-e2b

npm i https://pkg.pr.new/@tanstack/ai-sandbox-e2b@2128

@tanstack/ai-sandbox-local-process

npm i https://pkg.pr.new/@tanstack/ai-sandbox-local-process@2128

@tanstack/ai-sandbox-railway

npm i https://pkg.pr.new/@tanstack/ai-sandbox-railway@2128

@tanstack/ai-sandbox-sprites

npm i https://pkg.pr.new/@tanstack/ai-sandbox-sprites@2128

@tanstack/ai-sandbox-upstash-box

npm i https://pkg.pr.new/@tanstack/ai-sandbox-upstash-box@2128

@tanstack/ai-sandbox-vercel

npm i https://pkg.pr.new/@tanstack/ai-sandbox-vercel@2128

@tanstack/ai-skills

npm i https://pkg.pr.new/@tanstack/ai-skills@2128

@tanstack/ai-solid

npm i https://pkg.pr.new/@tanstack/ai-solid@2128

@tanstack/ai-svelte

npm i https://pkg.pr.new/@tanstack/ai-svelte@2128

@tanstack/ai-typesafe

npm i https://pkg.pr.new/@tanstack/ai-typesafe@2128

@tanstack/ai-utils

npm i https://pkg.pr.new/@tanstack/ai-utils@2128

@tanstack/ai-vercel-gateway

npm i https://pkg.pr.new/@tanstack/ai-vercel-gateway@2128

@tanstack/ai-vertex

npm i https://pkg.pr.new/@tanstack/ai-vertex@2128

@tanstack/ai-vue

npm i https://pkg.pr.new/@tanstack/ai-vue@2128

@tanstack/ai-worldlabs

npm i https://pkg.pr.new/@tanstack/ai-worldlabs@2128

@tanstack/openai-base

npm i https://pkg.pr.new/@tanstack/openai-base@2128

@tanstack/preact-ai-devtools

npm i https://pkg.pr.new/@tanstack/preact-ai-devtools@2128

@tanstack/react-ai-devtools

npm i https://pkg.pr.new/@tanstack/react-ai-devtools@2128

@tanstack/solid-ai-devtools

npm i https://pkg.pr.new/@tanstack/solid-ai-devtools@2128

@tanstack/svelte-ai-devtools

npm i https://pkg.pr.new/@tanstack/svelte-ai-devtools@2128

commit: 7472608

@AlemTuzlak
AlemTuzlak merged commit a93664d into main Nov 10, 2026
15 checks passed
@AlemTuzlak
AlemTuzlak deleted the alem/source-package-previews branch November 10, 2026 16:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant